#ifndef __FRAME_CONTROLLER_H__
#define __FRAME_CONTROLLER_H__

#include "stdfx.h"
#include "pin_scheme.h"

class FrameController
{
public:
    static FrameController& getInstance();
    
    void updateFrameReq();
    int getPinsCount();
    
    connection_t onTurn(Action<PinScheme>::slot_t callback);

    void simulateTurn(const std::string& scheme);

private:
    static std::once_flag _once;
    static std::unique_ptr<FrameController> _instance;
    
    //Action<bool>::signal_t      _onUpdateFrame;

    Action<PinScheme>::signal_t   _onTurn;

    //int _pinsCount;
    
    PinScheme _scheme;

};

#endif